// 事件添加和更新

// 事件添加
function addTraffic() {
	// 解绑zj的点击事件
	map.un('click', addPopup)
	map.removeInteraction(drawCircle)

	map.removeInteraction(draw)
	draw = null
	draw = createDraw(source, 'point', function (e) {
		// 获取点坐标
		const point = e.feature.getGeometry().getCoordinates()
		const zd_point = new Point({
			doc: docLayer,
			layerID: '3',
			fields: {
				事件编号: 'string',
				事件类型: 'string',
				事件等级: 'tinyint',
				发生时间: 'string',
				发生地点: 'string',
				车牌号: 'string',
				驾驶员: 'string',
				处理状态: 'tinyint',
				mpLayer: 'bigint',
			},
			style: {
				Angle: 0, // 角度
				Color: 6, // 子图的颜色号
				Space: 0,
				SymHeight: 5, // 点的高度
				SymID: 21, // 子图号
				SymWidth: 5, // 点的宽度
			},
		})
		// 添加事件
		showMask()
		$('.traffic-add').show()
		$('#addTraffic')
			.off('click')
			.on('click', function () {
				const data = {
					checked_event_id: $('#checked-event-id').val(),
					checked_event_type: $('#checked-event-type').val(),
					checked_event_level: $('#checked-event-level').val(),
					checked_event_addr: $('#checked-event-addr').val(),
					checked_event_time: document.querySelector(
						'#checked-event-time'
					).value,
					checked_car_number: $('#checked-car-number').val(),
					checked_car_driver: $('#checked-car-driver').val(),
					checked_add_path: point.toString(),
				}
				if (
					data.checked_event_addr == '' ||
					data.checked_event_time == '' ||
					data.checked_car_number == '' ||
					data.checked_car_driver == ''
				) {
					return
				}
				$.post(
					'http://localhost:3000/gg_checked_event',
					data,
					function (data) {
						docLayer.refresh()
						source.clear()
						alert('事件添加成功')
						$('.traffic-add').hide()
						hideMask()
					},
					'json'
				)
				let level = null
				switch (data.checked_event_level) {
					case '轻微事故':
						level = 1
						break
					case '一般事故':
						level = 2
						break
					case '重大事故':
						level = 3
						break
					case '特大事故':
						level = 4
				}
				// 在点击发送请求后交互绘制点
				zd_point.add(
					point,
					[
						data.checked_event_id,
						data.checked_event_type,
						level,
						data.checked_event_time,
						data.checked_event_addr,
						data.checked_car_number,
						data.checked_car_driver,
						0,
						0,
					],
					function () {
						map.removeInteraction(draw)
						draw = null
					}
				)
			})
	})
	//  添加到map对象
	map.addInteraction(draw)
}

// 事件状态更新

function putTraffic() {
	// 解绑zj的点击事件
	map.un('click', addPopup)
	map.removeInteraction(draw)
	draw = createDraw(source, 'point', function (e) {
		map.removeInteraction(draw)
		const query = new Query({
			service: 'GuangGu', // 要查询的地图文档
			layerID: '3', // 要查询的图层
		})
		// 点查询事件要素
		query.queryByPnt(
			e.feature.getGeometry().getCoordinates(),
			querySuccess,
			null
		)
		function querySuccess(result) {
			if (result.SFEleArray != null) {
				// 查询到事件要素
				const put_event_id = result.SFEleArray[0].AttValue[0]
				//console.log(put_event_id)
				$.get(
					'http://localhost:3000/gg_checked_event/' + put_event_id,
					function (data) {
						showMask()
						$('.traffic-put').show()
						// console.log(data)
						// 获取事件内容
						$('#put-event-id').val(data.result.checked_event_id)
						$('#put-event-type').val(data.result.checked_event_type)
						$('#put-event-level').val(
							data.result.checked_event_level
						)
						$('#put-event-addr').val(data.result.checked_event_addr)
						document.querySelector('#put-event-time').innerHTML =
							data.result.checked_event_time

						$('#put-car-number').val(data.result.checked_car_number)
						$('#put-car-driver').val(data.result.checked_car_driver)
						$('#put-event-status').val(
							data.result.checked_event_status
						)
						// 点击确定判断事件状态是否改变
						$('#putTraffic')
							.off('click')
							.on('click', function () {
								let checked_event_id =
										data.result.checked_event_id,
									checked_event_status =
										data.result.checked_event_status
								if (
									$('#put-event-status').val() !=
									checked_event_status
								) {
									// 事件状态改变的话发送更新请求
									checked_event_status =
										$('#put-event-status').val()

									$.ajax({
										url:
											'http://localhost:3000/gg_checked_event/' +
											checked_event_id,
										type: 'put',
										data: {
											checked_event_id,
											checked_event_status,
										},
										success: function (data) {
											// 把路况操作变成已审核
											// console.log(data)
											alert('事件更新成功')

											const fid = result.SFEleArray[0].FID
											const coordinate =
												result.SFEleArray[0].bound
											const AttValue =
												result.SFEleArray[0].AttValue
											// console.log(AttValue)
											if (fid) {
												const zd_point = new Point({
													doc: docLayer,
													layerID: '3',
													fields: {
														事件编号: 'string',
														事件类型: 'string',
														事件等级: 'tinyint',
														发生时间: 'string',
														发生地点: 'string',
														车牌号: 'string',
														驾驶员: 'string',
														处理状态: 'tinyint',
														mpLayer: 'bigint',
													},
												})
												let color = null
												switch (
													$('#put-event-status').val()
												) {
													case '0':
														color = 6
														break
													case '1':
														color = 4
														break
													case '2':
														color = 90
												}
												zd_point.update(
													fid,
													[
														coordinate.xmin,
														coordinate.ymin,
													],
													[
														AttValue[0],
														AttValue[1],
														AttValue[2],
														AttValue[3],
														AttValue[4],
														AttValue[5],
														AttValue[6],
														$(
															'#put-event-status'
														).val(),
														AttValue[8],
													],
													{
														Angle: 0, // 角度
														Color: color, // 子图的颜色号
														Space: 0,
														SymHeight: 5, // 点的高度
														SymID: 21, // 子图号
														SymWidth: 5, // 点的宽度
													}
												)
											}
											docLayer.refresh()
											source.clear()
											$('.traffic-put').hide()
											hideMask()
										},
									})
								} else {
									// 事件状态没有改变直接返回首页
									$('.traffic-put').hide()
									hideMask()
									return
								}
							})
					}
				)
			} else {
				docLayer.refresh()
				source.clear()
				return alert('没有查询到事件')
			}
		}
	})
	map.addInteraction(draw)
}
